import { defineStore } from "pinia";
import api from '../api/api.js'; // 导入 API 服务

export const adminStore = defineStore({
    id: "admin",
    state: () => ({
        userinfos: [], // 初始化用户信息为一个空数组
        adminpagedata: [], // 用于存储页面数据
        imageTextData: [],
        collectionDetails: [],
        rowCount: [],
    }),

    actions: {
        async fetchUserInfo(data) {
            this.loadpostsFromLocalStorage(); // 加载本地数据
            // 检查 data.page 是否已存在于 adminpagedata 中
            console.log('adminpagedata:', this.adminpagedata, data.page);
            if (this.adminpagedata.includes(data.page)) {
                return true; // 表示成功加载本地数据
            }


                const response = await api.get('/admin/user', { params: data }); // 调用API接口

                if (response.data.code === 0) {
                    // 将新数据添加到现有的 userinfos 数组中
                    this.userinfos.push(...response.data.data.data);
                    this.adminpagedata.push(data.page); // 将当前页添加到 adminpagedata 中
                    this.savepostsToLocalStorage(); // 保存用户信息到本地存储
                    return true; // 表示成功
                } else {

                    return false; // 失败
                }
        },

        savepostsToLocalStorage() {
            localStorage.setItem('userinfos', JSON.stringify(this.userinfos)); // 将用户信息保存到本地存储
            localStorage.setItem('adminpagedata', JSON.stringify(this.adminpagedata)); // 将页码保存到本地存储
        },
        deleteUser(userId) {
            const index = this.userinfos.findIndex((user) => user.id === userId); // 找到要删除的用户的索引
            console.log('index:', index);
            this.userinfos.splice(index, 1); // 从数组中删除用户
            this.savepostsToLocalStorage(); // 保存用户信息到本地存储
        },

        loadpostsFromLocalStorage() {
            const userinfos = localStorage.getItem('userinfos'); // 从本地存储读取用户信息
            const adminpagedata = localStorage.getItem('adminpagedata'); // 从本地存储读取页码信息

            if (userinfos) {
                this.userinfos = JSON.parse(userinfos); // 解析 JSON 数据并设置到 state
            }
            if (adminpagedata) {
                this.adminpagedata = JSON.parse(adminpagedata); // 解析 JSON 数据并设置到 state
            }
        }
    },

    getters: {
        fullName(state) {
            return `${state.admin.firstName} ${state.admin.lastName}`; // 示例：获取用户全名的计算属性
        },
    },
});
